package common

type TransferPresentAssetReq struct {
	UserId  int    `json:"userId"`
	AssetId string `json:"assetId"`
	// 要转移的asset的id
	ReceiverAddress string `json:"receiverAddress"`
}

type AddOrUpdateUserReq struct {
	Users []string `json:"users"`
	Type  int      `json:"type"`
}

type DelUserReq struct {
	Users []string `json:"users"`
}

//同时铸造多张图片请求
type MintReq struct {
	FileUrl         string `json:"fileUrl"`
	Name            string `json:"name"`
	Issuer          string `json:"issuer"`
	Description     string `json:"description"`
	Category        int    `json:"category"`
	CollectionIndex string `json:"collectionIndex"`
	MintAmount      int    `json:"mintAmount"`
}

type MintMultipleReq struct {
	UserId   int       `json:"userId"`
	MintData []MintReq `json:"mintData"`
}

//藏品详情请求
type AssetDetailReq struct {
	UserId          int    `json:"userId"`
	CollectionIndex string `json:"collectionIndex"`
	TokenId         string `json:"tokenId"`
}

// 销毁请求
type BurnAssetReq struct {
	UserId             int    `json:"userId"`
	CollectionIndex    string `json:"collectionIndex"`
	SubCollectionIndex int    `json:"subCollectionIndex"`
	AssetId            string `json:"assetId"`
}

//集合相关
//增加
type CollectionReq struct {
	CollectionName   string `json:"collectionName"`
	UserId           int    `json:"userId"`
	CollectionStatus int    `json:"collectionStatus"`
	CoverUrl         string `json:"coverUrl"`
}

type ModifyCollectionReq struct {
	UserId             int     `json:"userId"`
	CollectionIndex    string  `json:"collectionIndex"`
	SubCollectionIndex int     `json:"subCollectionIndex"`
	CollectionName     string  `json:"collectionName"`
	SaleTime           int64   `json:"saleTime"`
	OffShelfTime       int64   `json:"offShelfTime"`
	Price              float64 `json:"price"`
}
type PublishCollectionReq struct {
	UserId             int     `json:"userId"`
	CollectionIndex    string  `json:"collectionIndex"`
	SubCollectionIndex int     `json:"subCollectionIndex"`
	SaleTime           int64   `json:"saleTime"`
	OffShelfTime       int64   `json:"offShelfTime"`
	Currency           string  `json:"currency"`
	Price              float64 `json:"price"`
}

type OffShelfCollectionReq struct {
	CollectionIndex string `json:"collectionIndex"`
}

type QueryCollectionAllReq struct {
	UserId   string `json:"userId"`
	Page     int    `json:"page"`
	PageSize int    `json:"pageSize"`
}

type QueryCollectionExactReq struct {
	UserId           int    `json:"userId"`
	CollectionIndex  string `json:"collectionIndex"`
	CollectionName   string `json:"collectionName"`
	CollectionStatus int    `json:"collectionStatus"`
	Page             int    `json:"page"`
	PageSize         int    `json:"pageSize"`
}

type LoginReq struct {
	Account  string `json:"userName"`
	Password string `json:"password"`
}

type LoginByPhoneReq struct {
	PhoneNum         string `json:"phoneNum"`
	VerificationCode string `json:"verificationCode"`
}

type RegistrationReq struct {
	Name                  string `json:"userName"`
	Password              string `json:"password"`
	VerificationCode      string `json:"captcha"`
	PhoneNumber           string `json:"phoneNumber"`
	PhoneVerificationCode string `json:"phoneVerificationCode"`
}

type UpdatePhoneNumReq struct {
	UserId                int    `json:"userId"`
	PhoneNumber           string `json:"phoneNumber"`
	PhoneVerificationCode string `json:"phoneVerificationCode"`
}

type VerifyPhoneNumReq struct {
	PhoneNum string `json:"phoneNum"`
	IsReg    bool   `json:"isReg"`
}

type UnsubscribeReq struct {
	Password string `json:"password"`
}

type ChangePassReq struct {
	OldPass string `json:"oldPass"`
	NewPass string `json:"newPass"`
}

type LockAndUnlockUserReq struct {
	UserId int `json:"userid"`
}

type ApplyAssetReq struct {
	UserId             int    `json:"userId"`
	CollectionIndex    string `json:"collectionIndex"`
	SubCollectionIndex int    `json:"subCollectionIndex"`
	Survey             string `json:"survey"`
}

type GetAssetReq struct {
	UserId   int `json:"userId"`
	Page     int `json:"page"`
	PageSize int `json:"pageSize"`
}

type GetAssetWebUrl struct {
	ObsKey string `json:"obsKey"`
}

type CollectionHomePageReq struct {
	Page             int `json:"page"`
	PageSize         int `json:"pageSize"`
	CollectionStatus int `json:"collectionStatus"`
}

type CollectionRecommendReq struct {
	Num int `json:"num"`
}

type RealNameAuthenticationReq struct {
	UserId           int    `json:"userid"`
	VerificationName string `json:"verificationName"`
	VerificationID   string `json:"verificationID"`
}

type OrderQueryReq struct {
	UserId          int      `json:"userId"`
	CollectionIndex []string `json:"collectionIndex"`
	Page            int      `json:"page"`
	PageSize        int      `json:"pageSize"`
	OrderStatusFlag int      `json:"orderStatusFlag"`
	OrderStatus     []string `json:"orderStatus"`
	TimeRange       int      `json:"timeRange"`
	CollectionName  string   `json:"collectionName"`
	Issuer          string   `json:"issuer"`
	Role            string   `json:"role"`
}

type OrderReq struct {
	OrderId         string `json:"orderId"`
	UserId          int    `json:"userId"`
	PaymentMethod   string `json:"paymentMethod"`
	CollectionIndex string `json:"collectionIndex"`
	TokenId         string `json:"tokenId"`
}
